package com.wh.wisdomsite.xbox.common.reponse;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;


/***
 * 功能说明：通用响应类(json)
 * @Package com.wh.wisdomsite.xbox.common.reponse
 * @author 谢泽鹏
 * @date 2016年11月07日 下午15:10
 * @Copyright 个人版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 * @version V1.0
 */
@XmlRootElement(name = "OUT")
public class CommonResult implements Serializable {

    private static final Log logger = LogFactory.getLog(CommonResult.class);

    /***
     * 返回状态码
     * 0 请求处理错误
     * 1 请求正常返回
     */
    private String code = "PC_200";


    /***
     * 结果对象，此对象可以是实体或集合
     */
    private Object result = new JSONObject();


    /***
     * 描述信息
     */
    private String message = "请求成功!";



    public Object getResult() {
        return result;
    }

    public void setResult(Object result) {
        this.result = result;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }


    /**
     * 获取JsonString（把CommonResult转换字符串）
     * @param commonResult
     * @return
     */
    public static String getJsonString(CommonResult commonResult) {
        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject();
            jsonObject.put("code", commonResult.getCode());
            jsonObject.put("message", commonResult.getMessage());
            jsonObject.put("result", commonResult.getResult());
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("getString->>Exception" + e.getMessage());
            return null;
        }
        return jsonObject.toString();
    }


    /**
     * 获取JsonObject（把CommonResult转换对象）
     * @param commonResult
     * @return
     */
    public static JSONObject getJsonObject(CommonResult commonResult) {
        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject();
            jsonObject.put("code", commonResult.getCode());
            jsonObject.put("message", commonResult.getMessage());
            jsonObject.put("result", commonResult.getResult());
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("getJsonObject->>Exception" + e.getMessage());
            return null;
        }
        return jsonObject;
    }


}
